package com.lonely.deliver.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.common.core.domain.StatusInfo;
import com.lonely.deliver.domain.dto.QueryOrderDeliverPageDTO;
import com.lonely.deliver.domain.entity.SysOrderDeliver;
import com.lonely.deliver.domain.vo.QueryOrderDeliverPageVO;
import com.lonely.deliver.domain.vo.QueryPdaScanSizeInfoVO;
import com.lonely.order.domain.entity.SysOrder;

import java.util.List;

/**
 * @author : 黄志标
 * @date: 2025/8/15 17:32
 * @description: 订单发货服务
 */
public interface IOrderDeliverService extends IService<SysOrderDeliver> {

    /**
     * 同步订单发货单数据
     */
    void synchronizedOrderDeliver();

    /**
     * 订单发货单分页查询
     *
     * @param queryDto
     * @return
     */
    Page<QueryOrderDeliverPageVO> page(QueryOrderDeliverPageDTO queryDto);

    /**
     * 获取状态信息
     *
     * @param queryDto
     * @return
     */
    List<StatusInfo> getStatusInfo(QueryOrderDeliverPageDTO queryDto);

    /**
     * 根据发货单id获取对应详情信息
     *
     * @param id
     * @return
     */
    QueryOrderDeliverPageVO getDetail(Long id);

    /**
     * 查询该发货单的pda 扫描尺码信息
     *
     * @param id
     * @return
     */
    List<QueryPdaScanSizeInfoVO> queryPdaScanSizeInfo(Long id);

    /**
     * 同步指定订单集合的发货单数据
     *
     * @param orders
     */
    void synchronizerOrderDeliver(List<SysOrder> orders, boolean addSynchronizedTask);
}
